package com.ruoyi.project.declaration.domain;

import com.alibaba.fastjson.JSON;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 工程认证申报数据对象 project
 * 
 * @author Daniel
 * @date 2020-03-24
 */
public class Project extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 工程id */
    private Long pId;

    /** 工程申报人id */
    @Excel(name = "工程申报人id")
    private Long pApplicantId;

    /** 工程申报人名字 */
    @Excel(name = "工程申报人名字")
    private String pApplicantName;

    /** 申报部门id */
    @Excel(name = "申报部门id")
    private Long pApplyDeptId;

    /** 工程负责人 */
    @Excel(name = "工程负责人")
    private String pHeader;

    /** 负责人邮箱 */
    @Excel(name = "负责人邮箱")
    private String pHeaderEmail;

    /** 负责人电话 */
    @Excel(name = "负责人电话")
    private String pHeaderPhone;

    /** 工程性质id */
    @Excel(name = "工程性质id")
    private String pNatureId;

    /** 工程类别id */
    @Excel(name = "工程类别id")
    private String pCategoryId;

    /** 工程等级id */
    @Excel(name = "工程等级id")
    private String pLevelId;

    /** 工程名称 */
    @Excel(name = "工程名称")
    private String pName;

    /** 工程内容 */
    @Excel(name = "工程内容")
    private String pContent;

    /** 工程效益分析 */
    @Excel(name = "工程效益分析")
    private String pBenefitAnalysis;

    /** 工程成果形式id */
    @Excel(name = "工程成果形式id")
    private String pResultFormId;

    /** 工程指导老师 */
    @Excel(name = "工程指导老师")
    private String pGuideTeachers;

    /** 工程团队成员 */
    @Excel(name = "工程团队成员")
    private String pTeam;

    /** 工程经费预算 */
    @Excel(name = "工程经费预算")
    private Long pFund;

    /** 工程进度id */
    @Excel(name = "工程进度id")
    private String pProgressId;

    /** 工程申报时间 */
    @Excel(name = "工程申报时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date pApplyTime;

    /** 工程审核时间 */
    @Excel(name = "工程审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date pAuditTime;

    /** 申报单位意见 */
    @Excel(name = "申报单位意见")
    private String pUnitOpinion;

    /** 工程审批时间 */
    @Excel(name = "工程审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date pApprovalTime;

    /** 申报学院意见 */
    @Excel(name = "申报学院意见")
    private String pInstituteOpinion;

    /** 工程立项时间 */
    @Excel(name = "工程立项时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date pStartTime;

    /** 学校立项意见 */
    @Excel(name = "学校立项意见")
    private String pCollegeOpinionStart;

    /** 工程结项时间 */
    @Excel(name = "工程结项时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date pEndTime;

    /** 学校结项意见 */
    @Excel(name = "学校结项意见")
    private String pCollegeOpinionEnd;

    /** 工程链接 */
    @Excel(name = "工程链接")
    private String pLink;

    /** 工程成就 */
    @Excel(name = "工程成就")
    private String pAchievement;

    private List<Files> files;

    private String prName;

    private String prContent;

    public String getPrName() {
        return prName;
    }

    public void setPrName(String prName) {
        this.prName = prName;
    }

    public String getPrContent() {
        return prContent;
    }

    public void setPrContent(String prContent) {
        this.prContent = prContent;
    }

    public List<Files> getFiles() {
        return files;
    }

    //private String fileList;

    private List<FileList> fileList;

    public List<FileList> getFileList() {
        return fileList;
    }

    public void setFileList(List<FileList> fileList) {
        this.fileList = fileList;
    }
//    public String getFileList() {
//        List<FileList> list=new ArrayList();
//        if(files!=null){
//            for(Files f:files){
//                FileList fl=new FileList();
//                fl.setName(f.getfName());
//                fl.setUrl(f.getfPath());
//                list.add(fl);
//            }
//        }
//        return JSON.toJSONString(list);
//    }


    public void setFiles(List<Files> files) {
        this.files = files;
    }

    public void setpId(Long pId)
    {
        this.pId = pId;
    }

    public Long getpId() 
    {
        return pId;
    }
    public void setpApplicantId(Long pApplicantId) 
    {
        this.pApplicantId = pApplicantId;
    }

    public Long getpApplicantId() 
    {
        return pApplicantId;
    }
    public void setpApplicantName(String pApplicantName) 
    {
        this.pApplicantName = pApplicantName;
    }

    public String getpApplicantName() 
    {
        return pApplicantName;
    }
    public void setpApplyDeptId(Long pApplyDeptId) 
    {
        this.pApplyDeptId = pApplyDeptId;
    }

    public Long getpApplyDeptId() 
    {
        return pApplyDeptId;
    }
    public void setpHeader(String pHeader) 
    {
        this.pHeader = pHeader;
    }

    public String getpHeader() 
    {
        return pHeader;
    }
    public void setpHeaderEmail(String pHeaderEmail) 
    {
        this.pHeaderEmail = pHeaderEmail;
    }

    public String getpHeaderEmail() 
    {
        return pHeaderEmail;
    }
    public void setpHeaderPhone(String pHeaderPhone) 
    {
        this.pHeaderPhone = pHeaderPhone;
    }

    public String getpHeaderPhone() 
    {
        return pHeaderPhone;
    }
    public void setpNatureId(String pNatureId)
    {
        this.pNatureId = pNatureId;
    }


    public String getpName() 
    {
        return pName;
    }
    public void setpContent(String pContent) 
    {
        this.pContent = pContent;
    }

    public String getpContent() 
    {
        return pContent;
    }
    public void setpBenefitAnalysis(String pBenefitAnalysis) 
    {
        this.pBenefitAnalysis = pBenefitAnalysis;
    }


    public String getpNatureId() {
        return pNatureId;
    }

    public String getpCategoryId() {
        return pCategoryId;
    }

    public void setpCategoryId(String pCategoryId) {
        this.pCategoryId = pCategoryId;
    }

    public String getpLevelId() {
        return pLevelId;
    }

    public void setpLevelId(String pLevelId) {
        this.pLevelId = pLevelId;
    }

    public void setpName(String pName) {
        this.pName = pName;
    }

    public String getpBenefitAnalysis() {
        return pBenefitAnalysis;
    }

    public String getpResultFormId() {
        return pResultFormId;
    }

    public void setpResultFormId(String pResultFormId) {
        this.pResultFormId = pResultFormId;
    }

    public void setpGuideTeachers(String pGuideTeachers) {
        this.pGuideTeachers = pGuideTeachers;
    }

    public String getpProgressId() {
        return pProgressId;
    }

    public void setpProgressId(String pProgressId) {
        this.pProgressId = pProgressId;
    }

    public String getpGuideTeachers()
    {
        return pGuideTeachers;
    }
    public void setpTeam(String pTeam) 
    {
        this.pTeam = pTeam;
    }

    public String getpTeam() 
    {
        return pTeam;
    }
    public void setpFund(Long pFund) 
    {
        this.pFund = pFund;
    }

    public Long getpFund() 
    {
        return pFund;
    }

    public void setpApplyTime(Date pApplyTime) 
    {
        this.pApplyTime = pApplyTime;
    }

    public Date getpApplyTime() 
    {
        return pApplyTime;
    }
    public void setpAuditTime(Date pAuditTime) 
    {
        this.pAuditTime = pAuditTime;
    }

    public Date getpAuditTime() 
    {
        return pAuditTime;
    }
    public void setpUnitOpinion(String pUnitOpinion) 
    {
        this.pUnitOpinion = pUnitOpinion;
    }

    public String getpUnitOpinion() 
    {
        return pUnitOpinion;
    }
    public void setpApprovalTime(Date pApprovalTime) 
    {
        this.pApprovalTime = pApprovalTime;
    }

    public Date getpApprovalTime() 
    {
        return pApprovalTime;
    }
    public void setpInstituteOpinion(String pInstituteOpinion) 
    {
        this.pInstituteOpinion = pInstituteOpinion;
    }

    public String getpInstituteOpinion() 
    {
        return pInstituteOpinion;
    }
    public void setpStartTime(Date pStartTime) 
    {
        this.pStartTime = pStartTime;
    }

    public Date getpStartTime() 
    {
        return pStartTime;
    }
    public void setpCollegeOpinionStart(String pCollegeOpinionStart) 
    {
        this.pCollegeOpinionStart = pCollegeOpinionStart;
    }

    public String getpCollegeOpinionStart() 
    {
        return pCollegeOpinionStart;
    }
    public void setpEndTime(Date pEndTime) 
    {
        this.pEndTime = pEndTime;
    }

    public Date getpEndTime() 
    {
        return pEndTime;
    }
    public void setpCollegeOpinionEnd(String pCollegeOpinionEnd) 
    {
        this.pCollegeOpinionEnd = pCollegeOpinionEnd;
    }

    public String getpCollegeOpinionEnd() 
    {
        return pCollegeOpinionEnd;
    }
    public void setpLink(String pLink) 
    {
        this.pLink = pLink;
    }

    public String getpLink() 
    {
        return pLink;
    }
    public void setpAchievement(String pAchievement) 
    {
        this.pAchievement = pAchievement;
    }

    public String getpAchievement() 
    {
        return pAchievement;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("pId", getpId())
            .append("pApplicantId", getpApplicantId())
            .append("pApplicantName", getpApplicantName())
            .append("pApplyDeptId", getpApplyDeptId())
            .append("pHeader", getpHeader())
            .append("pHeaderEmail", getpHeaderEmail())
            .append("pHeaderPhone", getpHeaderPhone())
            .append("pNatureId", getpNatureId())
            .append("pCategoryId", getpCategoryId())
            .append("pLevelId", getpLevelId())
            .append("pName", getpName())
            .append("pContent", getpContent())
            .append("pBenefitAnalysis", getpBenefitAnalysis())
            .append("pResultFormId", getpResultFormId())
            .append("pGuideTeachers", getpGuideTeachers())
            .append("pTeam", getpTeam())
            .append("pFund", getpFund())
            .append("pProgressId", getpProgressId())
            .append("pApplyTime", getpApplyTime())
            .append("pAuditTime", getpAuditTime())
            .append("pUnitOpinion", getpUnitOpinion())
            .append("pApprovalTime", getpApprovalTime())
            .append("pInstituteOpinion", getpInstituteOpinion())
            .append("pStartTime", getpStartTime())
            .append("pCollegeOpinionStart", getpCollegeOpinionStart())
            .append("pEndTime", getpEndTime())
            .append("pCollegeOpinionEnd", getpCollegeOpinionEnd())
            .append("pLink", getpLink())
            .append("pAchievement", getpAchievement())
            .toString();
    }
}
